package pe.com.android.model.dao.imp;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import pe.com.android.model.bean.RemitoTraslado;
import pe.com.android.model.dao.DBConnection;
import pe.com.android.model.dao.RemitoTrasladoDAO;

/**
* @author Marko Ramirez Larzo
*/
public class RemitoTrasladoDAOImp implements RemitoTrasladoDAO{

	@Override
	public RemitoTraslado ubicar(String strNumeroRemito) {
		// TODO Auto-generated method stub
		int intNumeroRemito = Integer.parseInt(strNumeroRemito);
		
		RemitoTraslado remitoTraslado = null;
        CallableStatement cs =null;
        ResultSet rs = null;
        Connection conn = DBConnection.getConnection();
        String sql = "{call usp_UbicarxRemito(?)}";
        try {
            cs = conn.prepareCall(sql);
            cs.setInt(1, intNumeroRemito);
            rs = cs.executeQuery();
            if (rs.next()){
            	remitoTraslado = new RemitoTraslado();
            	remitoTraslado.setTipoEnvio(rs.getString("TIPO_ENVIO"));
            	remitoTraslado.setEmision(rs.getString("EMISION")); 
                remitoTraslado.setRemito(""+rs.getInt("REMITO"));   
                remitoTraslado.setRemito(""+rs.getInt("NRO_SALIDA"));
                remitoTraslado.setRemito(rs.getString("COD_CLIENTE"));
                remitoTraslado.setRemito(""+rs.getInt("NRO_CLIENTE"));
                remitoTraslado.setRemito(rs.getString("CIUDAD_ORIGEN"));
                remitoTraslado.setRemito(rs.getString("CIUDAD_DESTINO"));
                remitoTraslado.setRemito(rs.getString("CONSIGNADO"));
                remitoTraslado.setRemito(rs.getString("DIRECCION_ENTREGA"));
                remitoTraslado.setRemito(""+rs.getDate("FECHA_MANIFIESTO"));
                remitoTraslado.setRemito(rs.getString("NRO_MANIFIESTO"));
                remitoTraslado.setRemito(""+rs.getInt("NRO_VOLUMEN"));
                remitoTraslado.setRemito(""+rs.getInt("PESO_REAL"));
                remitoTraslado.setRemito(rs.getString("CARGO_ADJUNTO"));
                remitoTraslado.setRemito(""+rs.getInt("NRO_CARGOADJUNTO"));
                remitoTraslado.setRemito(rs.getString("COD_HIDROCASRBURO"));
                remitoTraslado.setRemito(rs.getString("ESTADO"));
                remitoTraslado.setRemito(rs.getString("USUARIO_CREA"));
                remitoTraslado.setRemito(""+rs.getDate("FECHA_CREA"));
                remitoTraslado.setRemito(rs.getString("USUARIO_MODIFICA"));
                remitoTraslado.setRemito(""+rs.getDate("FECHA_MODIFICA"));                
                remitoTraslado.setRemito(rs.getString("EMI_CARGO"));
                remitoTraslado.setRemito(""+rs.getInt("NRO_CARGO"));
                remitoTraslado.setRemito(""+rs.getDate("FECHA_DESCARGO"));                                 
                                
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally{
        	try { if(rs!=null) rs.close();} catch (Exception e) { e.printStackTrace(); }
        	try { if(cs!=null) cs.close();} catch (Exception e) { e.printStackTrace(); }
        	try { if(conn!=null) conn.close();} catch (Exception e) { e.printStackTrace(); }							
        }        
        return remitoTraslado;  		
	
	}
	
	
    public int insertar(RemitoTraslado remitoTraslado) {
        int cantInsertada = 0;
        //Paso 1: Se obtiene la conexión a la BD
        Connection conn = DBConnection.getConnection();
        //Paso 2: Se define o prepara la sentencia   
        String sql = "{call usp_InsertarRemitoTraslado(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
        try {
            CallableStatement cs =conn.prepareCall(sql);
                cs.setString(1, remitoTraslado.getTipoEnvio());
                cs.setInt(2, Integer.parseInt(remitoTraslado.getEmision()));
                cs.setInt(3, Integer.parseInt(remitoTraslado.getRemito()));
                cs.setString(4, remitoTraslado.getNroSalida());
                ///////////continuas con todos los demas valores de insert

                cs.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        
        return cantInsertada;        
    }	

}
